package com.hope.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

/**
 * 文件名：MybatisUtil
 * 创建者：蔡江鸿
 * 创建时间：2022/9/26-15:05
 * 描述：mybatis工具类
 * 1.
 */
public class MybatisUtil {
    private  static  SqlSessionFactory factory;
    //静态代码块
    static {
        String config="MybatisConfig.xml";
        try {
            //获取输出流
            //加载MybatisConfig.xml核心配置文件
            InputStream is = Resources.getResourceAsStream(config);
            //初始化SqlSessionFactory对象，同时解析mybatis-config.xml文件
            factory = new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    //getSqlSession() 为了给外部提供sql会话对象
    public static SqlSession getSqlSession(){
        //创建SqlSession对象，SqlSession是JDBC扩展类，用于数据库交互
        SqlSession sqlSession=null;
        if (factory!=null){
             sqlSession = factory.openSession();
        }
        return sqlSession;
    }

}
